Within the wireless industry, service providers have employed a variety of tools to aid in transferring a data item between devices separated by wireless air interface. Service providers often employ some of these tools to deconstruct the data item prior to sending from a source device and to reconstruct the data item upon receipt at a destination device. In one instance, the tool may comprise a protocol that transmits the data item as segments in the form of data packets.
Often, when transmitting a data item as data packets, packet loss occurs. Generally, packet loss refers to a situation where packets of data traveling across a computer network fail to reach their destination. Packet loss is typically distinguished as one of the three main error types encountered in digital communications; the other two being bit error and spurious packets caused due to noise.
Packet loss can be caused by a number of factors, including signal degradation over the network medium, oversaturated network links, corrupted packets rejected in-transit, faulty networking hardware, maligned system drivers or network applications, or normal routing routines. When caused by network problems, lost or dropped data packets can result in highly noticeable performance issues or jitter with streaming technologies, voice over IP, online gaming and videoconferencing, and will affect all other network applications to a degree.
Some tools (e.g., network transport protocols) provide for reliable delivery of the data packets. For instance, in the event of data packet loss, the tools may invoke the destination device to ask for retransmission or may invoke the source device to automatically resend any segments that have not been acknowledged. Although the tools can help recover from data packet loss, retransmitting missing data packets causes the throughput of the wireless air interface to decrease. This drop in throughput is due to the inherent delay in acknowledgment of received data packets or recognition that data packets are indeed lost. To exaggerate this drop in throughput, most tools require that, upon recognizing that one or more data packets are lost, every packet that had been sent subsequent to the one or more lost data packets be resent along therewith.
In order to detect data packet loss, the tools are equipped to positively respond (e.g., acknowledgment character (ACK)) to the source device upon properly receiving each data packet. Alternatively, the tools may provide a negative response (e.g., negative acknowledgement character (NAK)) upon detecting a gap between incrementally labeled data packets. By way of example, consider a data item that is divisible into 20 packets upon deconstruction. If the tool detects packet 1, 2, 3, 4, and then packet 7, it will recognize a hole and transmit a NAK for packets 5 and 6. The NAK' s are eventually captured by the source device, which attempt to retransmit the packets 5 and 6 in reply.
In some instances, the tool will start a timer in conjunction with transmitting NAK's. If the retransmitted packets 5 and 6 arrive before the timer expires, the destination device consumes the data packets 1-20. In this case, the destination device will provide an ACK to inform the source device to proceed with transmitting the subsequent data packets 20-N. If no ACK is received by the source device before the time expires, it will assume that the data packets are lost and will attempt to retransmit each of the data packets 1-20 again. Because the current tool is optimized for accurate delivery rather than timely delivery, the tool sometimes incurs relatively long delays while waiting for positive/negative responses or retransmissions of lost data packets, and it is not particularly suitable for transmitting data items generated from real-time applications (e.g., voice communications).
As such, employing a flexible technique for triggering a source device to resend data packets not received by a destination device that takes into account RF conditions of a wireless communication channel therebetween, would enhance an end user's experience when transferring information within a wireless network.